#ifndef _CCAMERA_H_
#define _CCAMERA_H_

#include <windows.h>
#include "..\Wrappers\CSGD_TextureManager.h"
#include "CBase.h"

class CCamera : public CBase
{
private:
	CCamera(void);
	CCamera& operator=(const CCamera&);
	~CCamera(void);
	CCamera(const CCamera&);

	static CCamera* instance;
	float m_fScreenX;
	float m_fScreenY;
	int m_nScreenWidth;
	int m_nScreenHeight;

	RECT m_rInnerRect;
	RECT m_rOuterRect;

	int m_nOffsetX;
	int m_nOffsetY;

	CBase* m_pTarget;
public:
	static CCamera* GetInstance();
	float	GetScreenX()		{ return m_fScreenX; }
	float	GetScreenY()		{ return m_fScreenY; }
	int		GetScreenWidth()	{ return m_nScreenWidth; }
	int		GetScreenHeight()	{ return m_nScreenHeight; }
	CBase*	GetTarget()			{ return m_pTarget; }
	int		GetOffsetX()		{ return m_nOffsetX; }
	int		GetOffsetY()		{ return m_nOffsetY; }

	void SetTarget(CBase* pTarget) { m_pTarget = pTarget; }
	void SetOffsetX(int nX) { m_nOffsetX = nX; }
	void SetOffsetY(int nY) { m_nOffsetY = nY; }

	RECT GetCameraRect();
	RECT GetInnerRect() { return m_rInnerRect; }
	RECT GetOuterRect() { return m_rOuterRect; }
	void Update(CBase* pTarget);
	void DeleteInstance(void);
};

#endif